package 面向对象_上.c属性;
/*
*类中属性的使用
* 属性（成员变量） vs 局部变量
* 1.相同点
*   1.1定义变量的格式，数据类型 变量名 = 变量值
*   1.2先声明，在使用
*   1.3变量都有其对应的作用域
* 2.不同点
*   2.1在类中声明的位置不同
*       属性：直接定义在类的一对{}中、
*       局部变量：声明在方法内、方法形参、代码块内、构造器形参、构造器内部变量
* 2.2 关于权限修饰符的不同
*       属性：可以声明属性时，指明其权限，使用权限修饰符
*       常用的修饰符：private、public、缺省、protected  --->封装性
*       局部变量：不可以使用权限修饰符
* 2.3默认初始化的值
*       属性：类的属性，根据其类型，都有默认值
*           整型（byte、short、int、long） 0
*           浮点型（float、double） 0.0
*           字符型（char） 0 或者 ‘\u0000’
*           布尔型（boolean） false
*
*           引用数据类型（类、接口、数组） null
*       局部变量：没有默认初始化值
*           意味着，在调用局部变量的时候，要显式的声明
*           特别的：形参在调用的时候，我们赋值即可
* 2.4内存加载位置不同
*       属性：加载到堆空间（非static）
*       局部变量：加载到栈空间
* */
public class UserTest {
    public static void main(String[] args) {

    }
    class User{
//        属性（成员变量）
        String name;
        int age ;
        boolean isMale;

        public void talk(String language){//langguage:形参，局部变量
            System.out.println("说话" + language);
        }

        public void eat(){
            String food = "大饼";//局部变量
            System.out.println("北方人吃" + food);
        }
    }
}
